#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
第一行注释是为了告诉Linux/OS X系统，这是一个Python可执行程序，Windows系统会忽略这个注释；
第二行注释是为了告诉Python解释器，按照UTF-8编码读取源代码，否则，你在源代码中写的中文输出可能会有乱码。
'''

'''异常'''

def fn(i):
	try:
		print 'trying...'
		r=10/i
		print 'r='+str(r)
	except ValueError:
		print 'except ValueError'
	except ZeroDivisionError,e:

		print 'except:',e
	finally:
		print 'finally'
	print 'End'
	
fn(10)
fn(0)

#不知道具体异常类型，直接使用StandardError
#常见的错误类型和继承关系看这里：
#https://docs.python.org/2/library/exceptions.html#exception-hierarchy
def fn2(i):
	try:
		return 10/i
	except StandardError,e:
		print 'except:',e
		return 0

print fn2(1)
print fn2(0)

#Python内置的logging模块可以非常容易地记录错误信息：

import logging

def fn3():
	try:
		print 10/0
	except StandardError,e:
		logging.exception(e)

fn3()

print 'continue fn3'


#抛出异常

def fn4(i):
	if i==0:
		raise StandardError("the number can't be %d" % i)
	return i
	
print fn4(10000)
print fn4(0)
	